package newx.com.control
{
	/**
	 * 生成页签控件，支持横排或纵排，并能够派发页签选择事件 
	 * @author wangjun
	 * 
	 */	
	public interface ITabBar extends IControl
	{
		/**
		 * 设置页签皮肤
		 * */
		function get skin():String;		
		function set skin(val:String):void;
		
		/**
		 * 设置页签背景是否自动缩放（如果自动缩放，所有设置高度均无效，
		 * 且背景高宽由文字高宽与偏移量所决定）
		 * */
		function get autoScale():Boolean;
		function set autoScale(val:Boolean):void;
		
		/**
		 * 设置默认页签文本颜色
		 * */
		function get defaultLabelColor():uint;
		function set defaultLabelColor(val:uint):void;
		
		/**
		 * 设置默认页签宽度
		 * */
		function get defaultWidth():uint;
		function set defaultWidth(val:uint):void;
		
		/**
		 * 设置默认页签宽度
		 * */
		function get defaultHeight():uint;
		function set defaultHeight(val:uint):void;
		
		/**
		 * 设置某一索引的页签宽度
		 * @param index	页签索引
		 * @param val	宽度值
		 * 
		 */		
		function setBarWidth(index:int,val:uint):void;
		
		/**
		 * 设置某一索引的页签高度
		 * @param index	页签索引
		 * @param val	高度值
		 * 
		 */		
		function setBarHeight(index:int,val:uint):void;
	
		/**
		 * 获取某一索引的页签宽度
		 * @param index	页签索引
		 * @return 		宽度值
		 * 
		 */
		function getBarWidth(index:int):uint;
	
		/**
		 * 获取某一索引的页签高度
		 * @param index	页签索引
		 * @return 		高度值
		 * 
		 */
		function getBarHeight(index:int):uint;
		
		/**
		 * 设置页签文字的水平定位方式（水平居左，水平居右，水平居中）
		 * */		
		function get horizontalLayout():String;
		function set horizontalLayout(val:String):void;
		
		/**
		 * 设置页签文字的垂直定位方式（垂直顶端，垂直低端，垂直居中）
		 * */		
		function get verticalLayout():String;
		function set verticalLayout(val:String):void;
		
		/**
		 * 设置页签文字的x方向偏移量
		 * */
		function get offsizeX():int;
		function set offsizeX(val:int):void;
		
		/**
		 * 设置页签文字的y方向偏移量
		 * */
		function get offsizeY():int;
		function set offsizeY(val:int):void;
		
		/**
		 * 获取（设置）当前被选中页签索引
		 * */
		function get selected():int;
		function set selected(val:int):void;
		
		/**
		 * 获取当前页签总数
		 * */
		function get count():int;
		
		/**
		 * 设置页签间距
		 * */
		function get gap():int;
		function set gap(val:int):void;
		
		/**
		 * 设置页签排列方式（横排，纵排）
		 * */		
		function get itemLayout():String;
		function set itemLayout(val:String):void;

		/**
		 * 设置标签组的数据源
		 * */		
		function get dataProvider():Array;
		function set dataProvider(value:Array):void;

		/**
		 * 插入一个页签
		 * @param label		：页签显示名
		 * @param index		：要插入到哪个索引之后（默认添加到最后）
		 * @param data		：特殊值。
		 * @param editable	：是否可以使用（点击）。
		 * @return 
		 * 
		 */
		function addItem(label		:String,
						 index		:int 		=	-1,
						 data		:Object 	= 	null,
						 editable	:Boolean	=	true):void;
		
		/**
		 * 设置一个页签
		 * @param label		：页签显示名
		 * @param index		：要插入到哪个索引之后（默认添加到最后）
		 * @param data		：特殊值。
		 * @param editable	：是否可以使用（点击）。
		 * @return 
		 * 
		 */
		function updataItem(label		:String,
						 index		:int 		=	-1,
						 data		:Object 	= 	null,
						 editable	:Boolean	=	true):void;
		
		/**
		 * 删除一个页签
		 * @param index	:被删除的页签索引号。
		 * @return 
		 * 
		 */		
		function deleteItem(index:int):void;
		
		/**
		 * 清空已设置的页签项
		 * */
		function clearItems():void
		
		/**设置页签的页面绑定。此功能待viewstack实现后再考虑*/
	}
}